
#pragma once

#include <string>
#include <memory>

namespace ftp
{

class IDtpSource; 
class IDtpSync;
class IDtpObserver;

class IDtpManager
{
public:
	virtual ~IDtpManager() {}

	virtual int getPort() = 0;
	virtual std::string getIp() = 0;

	virtual void acceptOutputDtp(std::auto_ptr<IDtpSource> dtpSource, IDtpObserver* dtpObserver) = 0;
	virtual void acceptInputDtp(std::auto_ptr<IDtpSource> dtpSync, IDtpObserver* dtpObserver) = 0;
};

class IDtpSource
{
public:
	virtual ~IDtpSource() {}
};

class IDtpSync
{
public:
	virtual ~IDtpSync() {}
};

class IDtpObserver
{
public:
	virtual ~IDtpObserver() {}
};

}
